import time, random
from threading import Thread


def send_sms(i):
    """模拟发送邮件的方法"""
    # 使用随机数进行程序睡眠，random.random()随机生成0-1之间的小数
    time.sleep(random.random())
    print(f"成功发送第{i}份邮件！")


if __name__ == '__main__':
    t1 = time.time()
    # 与多进程操作一样，join阻塞监控所有的子线程全部执行结束也是类似的操作
    thread_list = []
    for i in range(100):
        t = Thread(target=send_sms, args=(i,))
        t.start()
        thread_list.append(t)
    t2 = time.time()
    for t in thread_list: t.join()
    t3 = time.time()
    print("所有邮件已经发送成功了！")

    print(f"主进程从启动子进程以后到所有子进程发送成功以后的时间：{t3 - t2}")
    print(f"整个发送邮件的过程到确认所有邮件都发送成功的时间：{t3 - t1}")
